Heuristics for Automatic Localization of Software Faults

نویسندگان

  • Hsin Pan
  • Eugene H. Spafford
چکیده

Developing effective debugging strategies to guarantee the reliability of software is important. By analyzing the debugging process used by experienced programmers, four distinct tasks are found to be consistently performed: (1) determining statements involved in program failures, (2) selecting suspicious statements that might contain faults, (3) making hypotheses about suspicious faults (variables and locations), and (4) restoring program state to a specific statement for verification. If all four tasks could be performed with direct assistance from a debugging tool, the debugging effort would become much easier. We have built a prototype debugging tool, Spyder, to assist users in conducting the first and last tasks. Spyder executes the first task by using dynamic program slicing and the fourth task by backward execution. This research focuses on the second task, reducing the search domain containing faults, referred to as fault localization. Several heuristics are presented here based on dynamic program slices and information obtained from testing. A family tree of the heuristics is constructed to study effective application of the heuristics. The relationships among the heuristics and the potential order of using them are also explored. A preliminary study was conducted to examine the effectiveness of the heuristics proposed. Results of our study show the promise of fault localization based on these heuristics as well as suggest criteria for precise application of the heuristics (e.g., the standard of selecting thresholds). A new debugging paradigm equipped with these heuristics is expected to reduce human interaction time significantly and aid in the debugging of complex software. This research was supported, in part, by a grant from the Software Engineering Research Center at Purdue University, a National Science Foundation Industry/University Cooperative Research Center (NSF Grant ECD–8913133), and by National Science Foundation Grant CCR–8910306. A condensed version of this paper appears as [33].

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

An Efficient Software Defect Prediction Model Using Optimized Tabu Search Branch and Bound Procedure

Software fault localization is considered to be one of the most tedious procedures that involves larger amount of time during the debugging of program. With this, there arises an increasing desire for software fault localization to be practiced with minimum amount of human intervention. This resulted with the design of several methods, each of which provides means to address the issues related ...

متن کامل

Towards automatic software fault location through decision-to-decision path analysis

Software development is a complex and error prone process. As a result of this process, much time is spent debugging software. This debugging process actually consists of two activities, fault localization and repair. For most problems, much of the debugging effort is devoted to fault localization. In this paper, current fault localization techniques are surveyed and a new technique called rela...

متن کامل

Automatic Detection and Localization of Surface Cracks in Continuously Cast Hot Steel Slabs Using Digital Image Analysis Techniques

Quality inspection is an indispensable part of modern industrial manufacturing. Steel as a major industry requires constant surveillance and supervision through its various stages of production. Continuous casting is a critical step in the steel manufacturing process in which molten steel is solidified into a semi-finished product called slab. Once the slab is released from the casting unit, th...

متن کامل

A Study of Software Fault Localization Techniques

Fault localization is the activity of identifying the exact locations of program faults. Automatic software fault localization techniques are used by programmers to find out the exact location of the fault in least amount of time. Therefore, there is a high demandfor automatic fault localization techniques that can guide programmers to thelocations of faults, with minimal human intervention. Th...

متن کامل

Locating Crashing Faults based on Crash Stack Traces

Software crashes due to its increasing complexity. Once a crash happens, a crash report could be sent to software developers for investigation upon user permission. Because of the large number of crash reports and limited information, debugging for crashes is often a tedious and labor-intensive task. In this paper, we propose a statistical fault localization framework to help developers locate ...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1992